'use strict';
import * as vscode from 'vscode';
import { JsonEditorPanel } from './JsonEditorPanel';

// 当您的扩展被激活时，将调用此方法
// //你的扩展被激活的命令是第一次执行
// tslint:disable-next-line:export-name
export function activate(context: vscode.ExtensionContext): void {

    const startCommand = vscode.commands.registerCommand('vscode-json-editor.start', resource => {
        if (resource) {
            if (isOpened(resource)) {
                // 当资源已经打开时
                JsonEditorPanel.CreateOrShow(context.extensionPath);
            } else {
                // 有资源但没有打开的情况
                vscode.window.showTextDocument(resource)
                    .then(() => {
                        JsonEditorPanel.CreateOrShow(context.extensionPath);
                    });
            }
        } else {
            // 没有资源传递下来的情况
            JsonEditorPanel.CreateOrShow(context.extensionPath);
        }
    });

    context.subscriptions.push(startCommand);
}

// 如果已为给定资源打开编辑器，则返回true
function isOpened(resource:any) {
    const openedPaths = vscode.window.visibleTextEditors.map(editor => editor.document.uri.path);
    return openedPaths.includes(resource.path);
}
